%matplotlib inline
%load_ext autoreload
import networkx as nx
import matplotlib.pyplot as plt
import numpy as np
The text file of Shakespeare's Julius Caesar ('corpora/ShakespeareJuliusCaesarOrig_from_PG.txt') was downloaded from Project Gutenberg and it was modified in such a way that all the names of characters (as "actors" in the social networks sense) appear as such in a uniform way. This modified text ('corpora/ShakespeareJuliusCaesar_mod1.txt') is the one processed here.
fileName = 'corpora/ShakespeareJuliusCaesar_mod1.txt'
f=open(fileName,'r')
%autoreload 2
from testy import *
from syntheticThreeLayerGraph_time import synthetic_multi_level_dict,plot_graph_dict,plot_graph_k_n, plot_total_graph_with_weights
act_dict,u,pers_l,pers_dict,pact,lact=create_dict_of_acts(fileName)
print 'Characters (actors) appearing in Julius Caesar:'
print
for actor in pers_l:
print actor
print
print 'The number of characters (actors) in Julius Caesar is', len(pers_l)
The relationship (tie) among the above characters (actors) detected (automatically) here is the so-called "conversational relationship" which is defined whenever two characters are co-participating in a conversation. Actually, due to the structure of Shakespeare's printed text (in Project Gutenberg), the unit of conversation (or conversational chunk) used here is the body of the text which is delimited between two empty lines. In this way, the resulting network is represented by a weighted undirected graph, where tha weight of a edge joining two characters is the total number of conversational chaunks that these characters are involved in. Moreover, we are decomposing the network into slices (or layers) according to one of the five Acts during which the measured coversations take place.
graph_dic,ract_dic,pernode_dict,nodper_dic,cnum=create_graph_dict(act_dict,pers_l,pers_dict,u)
G, list_of_Graphs_final, Gagr, edgeList ,nmap ,mapping,k,n=synthetic_multi_level_dict(graph_dic,pernode_dict,nodper_dic,ract_dic,No_isolates=True)
conver_rel = 0
pos_dict={}
for k,v in graph_dic.items():
print nx.info(v)
conver_rel += len(v.edges())
print
print 'Characters (actors) appearing in Julius Caesar in all conversational relationships in all Acts:'
print
for i in pernode_dict:
print i
print
print 'The total number of characters (actors) appearing in Julius Caesar in all conversational relationships in all Acts is', len(pernode_dict.keys())
print
print 'The total number of conversational relationships (edges) among characters (actors) \
taking place in all Acts of Julius Caesar is', conver_rel
GI = graph_dic[ract_dic[cnum[0]]]
print "The number of actors in Julius Caesar's Act I is", len(GI.nodes())
print "The number of conversational relationships in Julius Caesar's Act I is", len(GI.edges())
GI.remove_nodes_from(nx.isolates(GI))
labels={i:v for v,i in pernode_dict.items() if i in GI.nodes()}
weights={(i[0],i[1]):i[2]['weight'] for i in GI.edges(data=True) }#if all((i[0],i[1])) in G.nodes() }
plt.figure(figsize=(12,12))
pos=nx.spring_layout(GI,scale=50)
pos_dict[0]=pos
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(GI,pos=pos,with_labels=False,alpha=0.4)
labe=nx.draw_networkx_labels(GI,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(GI,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=0.2)
plt.title("Julius Caesar Act I",fontsize=20)
kk=plt.axis('off')
GI = graph_dic[ract_dic[cnum[1]]]
print "The number of actors in Julius Caesar's Act II is", len(GI.nodes())
print "The number of conversational relationships in Julius Caesar's Act II is", len(GI.edges())
GI.remove_nodes_from(nx.isolates(GI))
labels={i:v for v,i in pernode_dict.items() if i in GI.nodes()}
weights={(i[0],i[1]):i[2]['weight'] for i in GI.edges(data=True) }#if all((i[0],i[1])) in G.nodes() }
plt.figure(figsize=(12,12))
pos=nx.spring_layout(GI,scale=50)
pos_dict[1]=pos
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(GI,pos=pos,with_labels=False,alpha=0.4)
labe=nx.draw_networkx_labels(GI,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(GI,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=0.2)
plt.title("Julius Caesar Act II",fontsize=20)
kk=plt.axis('off')
GI = graph_dic[ract_dic[cnum[2]]]
print "The number of actors in Julius Caesar's Act III is", len(GI.nodes())
print "The number of conversational relationships in Julius Caesar's Act III is", len(GI.edges())
GI.remove_nodes_from(nx.isolates(GI))
labels={i:v for v,i in pernode_dict.items() if i in GI.nodes()}
weights={(i[0],i[1]):i[2]['weight'] for i in GI.edges(data=True) }#if all((i[0],i[1])) in G.nodes() }
plt.figure(figsize=(12,12))
pos=nx.spring_layout(GI,scale=50)
pos_dict[2]=pos
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(GI,pos=pos,with_labels=False,alpha=0.4)
labe=nx.draw_networkx_labels(GI,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(GI,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=0.2)
plt.title("Julius Caesar Act III",fontsize=20)
kk=plt.axis('off')
GI = graph_dic[ract_dic[cnum[3]]]
print "The number of actors in Julius Caesar's Act IV is", len(GI.nodes())
print "The number of conversational relationships in Julius Caesar's Act IV is", len(GI.edges())
GI.remove_nodes_from(nx.isolates(GI))
labels={i:v for v,i in pernode_dict.items() if i in GI.nodes()}
weights={(i[0],i[1]):i[2]['weight'] for i in GI.edges(data=True) }#if all((i[0],i[1])) in G.nodes() }
plt.figure(figsize=(12,12))
pos=nx.spring_layout(GI,scale=50)
pos_dict[3]=pos
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(GI,pos=pos,with_labels=False,alpha=0.4)
labe=nx.draw_networkx_labels(GI,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(GI,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=0.2)
plt.title("Julius Caesar Act IV",fontsize=20)
kk=plt.axis('off')
GI = graph_dic[ract_dic[cnum[4]]]
print "The number of actors in Julius Caesar's Act V is", len(GI.nodes())
print "The number of conversational relationships in Julius Caesar's Act V is", len(GI.edges())
GI.remove_nodes_from(nx.isolates(GI))
labels={i:v for v,i in pernode_dict.items() if i in GI.nodes()}
weights={(i[0],i[1]):i[2]['weight'] for i in GI.edges(data=True) }#if all((i[0],i[1])) in G.nodes() }
plt.figure(figsize=(12,12))
pos=nx.spring_layout(GI,scale=50)
pos_dict[4]=pos
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(GI,pos=pos,with_labels=False,alpha=0.4)
labe=nx.draw_networkx_labels(GI,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(GI,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=0.2)
plt.title("Julius Caesar Act V",fontsize=20)
kk=plt.axis('off')
G=plot_total_graph_with_weights(graph_dic,nodper_dic)
weights={(nd[0],nd[1]):str(nd[2]['weight']) for nd in G.edges(data=True)}
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
print "The number of actors in Julius Caesar Network (all Acts) is", len(G.nodes())
print "The number of conversational relationships in Julius Caesar Network (all Acts) is", len(G.edges())
# print labels
plt.figure(figsize=(12,12))
pos=nx.spring_layout(G,scale=50)
pos_dict[5]=pos
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Network (all Acts)",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[0]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
dc = nx.degree_centrality(G)
dcs={}
for k,v in dc.items():
dcs[v]=k
for k in sorted(dcs,reverse=True):
print labels[dcs[k]], 'has degree centrality', k
pos=pos_dict[0]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=dc.keys(),
node_size = [d*5000 for d in dc.values()],node_color=dc.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act I Degree Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[1]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
# dc = nx.degree_centrality(G)
# for k,v in dc.items():
# print labels[k], 'has degree centrality', v
dc = nx.degree_centrality(G)
dcs={}
for k,v in dc.items():
dcs[v]=k
for k in sorted(dcs,reverse=True):
print labels[dcs[k]], 'has degree centrality', k
pos=pos_dict[1]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=dc.keys(),
node_size = [d*5000 for d in dc.values()],node_color=dc.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act II Degree Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[2]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
dc = nx.degree_centrality(G)
dcs={}
for k,v in dc.items():
dcs[v]=k
for k in sorted(dcs,reverse=True):
print labels[dcs[k]], 'has degree centrality', k
pos=pos_dict[2]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=dc.keys(),
node_size = [d*5000 for d in dc.values()],node_color=dc.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act III Degree Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[3]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
dc = nx.degree_centrality(G)
dcs={}
for k,v in dc.items():
dcs[v]=k
for k in sorted(dcs,reverse=True):
print labels[dcs[k]], 'has degree centrality', k
pos=pos_dict[3]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=dc.keys(),
node_size = [d*5000 for d in dc.values()],node_color=dc.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act IV Degree Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[4]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
dc = nx.degree_centrality(G)
dcs={}
for k,v in dc.items():
dcs[v]=k
for k in sorted(dcs,reverse=True):
print labels[dcs[k]], 'has degree centrality', k
pos=pos_dict[4]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=dc.keys(),
node_size = [d*5000 for d in dc.values()],node_color=dc.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act V Degree Centralities",fontsize=20)
kk=plt.axis('off')
G=plot_total_graph_with_weights(graph_dic,nodper_dic)
weights={(nd[0],nd[1]):str(nd[2]['weight']) for nd in G.edges(data=True)}
# G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
dc = nx.degree_centrality(G)
dcs={}
for k,v in dc.items():
dcs[v]=k
for k in sorted(dcs,reverse=True):
print labels[dcs[k]], 'has degree centrality', k
pos=pos_dict[5]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=dc.keys(),
node_size = [d*2000 for d in dc.values()],node_color=dc.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Network (all Acts) Degree Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[0]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
cl = nx.closeness_centrality(G)
cls={}
for k,v in cl.items():
cls[v]=k
for k in sorted(cls,reverse=True):
print labels[cls[k]], 'has closeness centrality', k
pos=pos_dict[0]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=cl.keys(),
node_size = [d*5000 for d in cl.values()],node_color=cl.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act I Closeness Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[1]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
cl = nx.closeness_centrality(G)
cls={}
for k,v in cl.items():
cls[v]=k
for k in sorted(cls,reverse=True):
print labels[cls[k]], 'has closeness centrality', k
pos=pos_dict[1]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=cl.keys(),
node_size = [d*5000 for d in cl.values()],node_color=cl.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act II Closeness Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[2]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
cl = nx.closeness_centrality(G)
cls={}
for k,v in cl.items():
cls[v]=k
for k in sorted(cls,reverse=True):
print labels[cls[k]], 'has closeness centrality', k
pos=pos_dict[2]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=cl.keys(),
node_size = [d*5000 for d in cl.values()],node_color=cl.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act III Closeness Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[3]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
cl = nx.closeness_centrality(G)
for k,v in cl.items():
print labels[k], 'has closeness centrality', v
# pos=nx.spring_layout(G,scale=50)
pos=pos_dict[3]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=cl.keys(),
node_size = [d*5000 for d in cl.values()],node_color=cl.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act IV Closeness Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[4]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
cl = nx.closeness_centrality(G)
cls={}
for k,v in cl.items():
cls[v]=k
for k in sorted(cls,reverse=True):
print labels[cls[k]], 'has closeness centrality', k
pos=pos_dict[4]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=cl.keys(),
node_size = [d*5000 for d in cl.values()],node_color=cl.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act V Closeness Centralities",fontsize=20)
kk=plt.axis('off')
G=plot_total_graph_with_weights(graph_dic,nodper_dic)
weights={(nd[0],nd[1]):str(nd[2]['weight']) for nd in G.edges(data=True)}
# G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
cl = nx.closeness_centrality(G)
cls={}
for k,v in cl.items():
cls[v]=k
for k in sorted(cls,reverse=True):
print labels[cls[k]], 'has closeness centrality', k
pos=pos_dict[5]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=cl.keys(),
node_size = [d*2000 for d in cl.values()],node_color=cl.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Network (all Acts) Closeness Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[0]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
bc = nx.betweenness_centrality(G)
bcs={}
for k,v in bc.items():
bcs[v]=k
for k in sorted(bcs,reverse=True):
print labels[bcs[k]], 'has betweenness centrality', k
pos=pos_dict[0]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=bc.keys(),
node_size = [d*5000 for d in bc.values()],node_color=bc.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act I Betweenness Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[1]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
bc = nx.betweenness_centrality(G)
bcs={}
for k,v in bc.items():
bcs[v]=k
for k in sorted(bcs,reverse=True):
print labels[bcs[k]], 'has betweenness centrality', k
pos=pos_dict[1]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=bc.keys(),
node_size = [d*5000 for d in bc.values()],node_color=bc.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act II Betweenness Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[2]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
bc = nx.betweenness_centrality(G)
bcs={}
for k,v in bc.items():
bcs[v]=k
for k in sorted(bcs,reverse=True):
print labels[bcs[k]], 'has betweenness centrality', k
pos=pos_dict[2]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=bc.keys(),
node_size = [d*5000 for d in bc.values()],node_color=bc.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act III Betweenness Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[3]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
bc = nx.betweenness_centrality(G)
bcs={}
for k,v in bc.items():
bcs[v]=k
for k in sorted(bcs,reverse=True):
print labels[bcs[k]], 'has betweenness centrality', k
pos=pos_dict[3]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=bc.keys(),
node_size = [d*5000 for d in bc.values()],node_color=bc.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act IV Betweenness Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[4]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
bc = nx.betweenness_centrality(G)
bcs={}
for k,v in bc.items():
bcs[v]=k
for k in sorted(bcs,reverse=True):
print labels[bcs[k]], 'has betweenness centrality', k
pos=pos_dict[4]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=bc.keys(),
node_size = [d*5000 for d in bc.values()],node_color=bc.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act V Betweenness Centralities",fontsize=20)
kk=plt.axis('off')
G=plot_total_graph_with_weights(graph_dic,nodper_dic)
weights={(nd[0],nd[1]):str(nd[2]['weight']) for nd in G.edges(data=True)}
# G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
bc = nx.betweenness_centrality(G)
bcs={}
for k,v in bc.items():
bcs[v]=k
for k in sorted(bcs,reverse=True):
print labels[bcs[k]], 'has betweenness centrality', k
pos=pos_dict[5]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=bc.keys(),
node_size = [d*2000 for d in bc.values()],node_color=bc.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Network (all Acts) Betweenness Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[0]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
ec = nx.eigenvector_centrality(G)
ecs={}
for k,v in ec.items():
ecs[v]=k
for k in sorted(ecs,reverse=True):
print labels[ecs[k]], 'has eigenvector centrality', k
pos=pos_dict[0]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=ec.keys(),
node_size = [d*5000 for d in ec.values()],node_color=ec.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act I Eigenvector Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[1]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
ec = nx.eigenvector_centrality(G)
ecs={}
for k,v in ec.items():
ecs[v]=k
for k in sorted(ecs,reverse=True):
print labels[ecs[k]], 'has eigenvector centrality', k
pos=pos_dict[1]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=ec.keys(),
node_size = [d*5000 for d in ec.values()],node_color=ec.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act II Eigenvector Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[2]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
ec = nx.eigenvector_centrality(G)
ecs={}
for k,v in ec.items():
ecs[v]=k
for k in sorted(ecs,reverse=True):
print labels[ecs[k]], 'has eigenvector centrality', k
pos=pos_dict[2]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=ec.keys(),
node_size = [d*5000 for d in ec.values()],node_color=ec.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act III Eigenvector Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[3]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
ec = nx.eigenvector_centrality(G,max_iter=1000)
ecs={}
for k,v in ec.items():
ecs[v]=k
for k in sorted(ecs,reverse=True):
print labels[ecs[k]], 'has eigenvector centrality', k
pos=pos_dict[3]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=ec.keys(),
node_size = [d*5000 for d in ec.values()],node_color=ec.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act IV Eigenvector Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[4]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
ec = nx.eigenvector_centrality(G)
ecs={}
for k,v in ec.items():
ecs[v]=k
for k in sorted(ecs,reverse=True):
print labels[ecs[k]], 'has eigenvector centrality', k
pos=pos_dict[4]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=ec.keys(),
node_size = [d*5000 for d in ec.values()],node_color=ec.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act V Eigenvector Centralities",fontsize=20)
kk=plt.axis('off')
G=plot_total_graph_with_weights(graph_dic,nodper_dic)
weights={(nd[0],nd[1]):str(nd[2]['weight']) for nd in G.edges(data=True)}
# G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
ec = nx.eigenvector_centrality(G)
ecs={}
for k,v in ec.items():
ecs[v]=k
for k in sorted(ecs,reverse=True):
print labels[ecs[k]], 'has eigenvector centrality', k
pos=pos_dict[5]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=ec.keys(),
node_size = [d*2000 for d in ec.values()],node_color=ec.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Network (all Acts) Eigenvector Centralities",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[0]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
pr = nx.pagerank(G)
prs={}
for k,v in pr.items():
prs[v]=k
for k in sorted(prs,reverse=True):
print labels[prs[k]], 'has PageRank', k
pos=pos_dict[0]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=pr.keys(),
node_size = [d*5000 for d in pr.values()],node_color=pr.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act I PageRank",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[1]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
pr = nx.pagerank(G)
prs={}
for k,v in pr.items():
prs[v]=k
for k in sorted(prs,reverse=True):
print labels[prs[k]], 'has PageRank', k
pos=pos_dict[1]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=pr.keys(),
node_size = [d*5000 for d in pr.values()],node_color=pr.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act II PageRank",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[2]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
pr = nx.pagerank(G)
prs={}
for k,v in pr.items():
prs[v]=k
for k in sorted(prs,reverse=True):
print labels[prs[k]], 'has PageRank', k
pos=pos_dict[2]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=pr.keys(),
node_size = [d*5000 for d in pr.values()],node_color=pr.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act III PageRank",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[3]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
pr = nx.pagerank(G)
prs={}
for k,v in pr.items():
prs[v]=k
for k in sorted(prs,reverse=True):
print labels[prs[k]], 'has PageRank', k
pos=pos_dict[3]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=pr.keys(),
node_size = [d*5000 for d in pr.values()],node_color=pr.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act IV PageRank",fontsize=20)
kk=plt.axis('off')
G = graph_dic[ract_dic[cnum[4]]]
G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
pr = nx.pagerank(G)
prs={}
for k,v in pr.items():
prs[v]=k
for k in sorted(prs,reverse=True):
print labels[prs[k]], 'has PageRank', k
pos=pos_dict[4]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=pr.keys(),
node_size = [d*5000 for d in pr.values()],node_color=pr.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Act V PageRank",fontsize=20)
kk=plt.axis('off')
G=plot_total_graph_with_weights(graph_dic,nodper_dic)
weights={(nd[0],nd[1]):str(nd[2]['weight']) for nd in G.edges(data=True)}
# G.remove_nodes_from(nx.isolates(G))
plt.figure(figsize=(12,12))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
pr = nx.pagerank(G)
prs={}
for k,v in pr.items():
prs[v]=k
for k in sorted(prs,reverse=True):
print labels[prs[k]], 'has PageRank', k
pos=pos_dict[5]
edgewidth=[]
for (u,v,d) in GI.edges(data=True):
edgewidth.append(d['weight'])
nx.draw_networkx_nodes(G,pos=pos,with_labels=False,nodelist=pr.keys(),
node_size = [d*2000 for d in pr.values()],node_color=pr.values(),
cmap=plt.cm.Reds,alpha=0.4)
labe=nx.draw_networkx_labels(G,pos=pos,labels=labels,font_size=20)
nx.draw_networkx_edges(G,pos=pos,edge_color='b',width=edgewidth, alpha=0.5)#,edge_labels=weights,label_pos=.2)
plt.title("Julius Caesar Network (all Acts) PageRank",fontsize=20)
kk=plt.axis('off')
from chAs import draw_comms,modul_arity
import community as comm
G = graph_dic[ract_dic[cnum[0]]]
G.remove_nodes_from(nx.isolates(G))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
part=comm.best_partition(G)
print 'Number of communities of Julius Caesar Act I network =', max(part.values())+1
print 'Community partition of Julius Caesar Act I network:'
parLis=[]
partdi={}
for i,k in part.items():
if k not in partdi:
partdi[k]=[nodper_dic[i]]
else:
partdi[k].append(nodper_dic[i])
for i,k in partdi.items():
parLis.append(k)
print parLis
print 'Community modularity of Julius Caesar Act I network =', "%.4f" % comm.modularity(part,G)
d=0.8
dd=0.8
c=1.2
cc=1.4
alpha=0.2
ealpha=.2
vcc={}
sstt="The %s Communities of Julius Caesar Act I Network" %(max(part.values())+1)
draw_comms(G,G.nodes(),[],[],[] ,part,part,d,dd,c,cc,alpha,ealpha,nodper_dic,sstt)
from chAs import draw_comms,modul_arity
import community as comm
G = graph_dic[ract_dic[cnum[1]]]
G.remove_nodes_from(nx.isolates(G))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
part=comm.best_partition(G)
print 'Number of communities of Julius Caesar Act II network =', max(part.values())+1
print 'Community partition of Julius Caesar Act II network:'
parLis=[]
partdi={}
for i,k in part.items():
if k not in partdi:
partdi[k]=[nodper_dic[i]]
else:
partdi[k].append(nodper_dic[i])
for i,k in partdi.items():
parLis.append(k)
print parLis
print 'Community modularity of Julius Caesar Act II network =', "%.4f" % comm.modularity(part,G)
d=0.8
dd=0.8
c=1.2
cc=1.4
alpha=0.2
ealpha=.2
vcc={}
sstt="The %s Communities of Julius Caesar Act II Network" %(max(part.values())+1)
draw_comms(G,G.nodes(),[],[],[] ,part,part,d,dd,c,cc,alpha,ealpha,nodper_dic,sstt)
from chAs import draw_comms,modul_arity
import community as comm
G = graph_dic[ract_dic[cnum[2]]]
G.remove_nodes_from(nx.isolates(G))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
part=comm.best_partition(G)
print 'Number of communities of Julius Caesar Act III network =', max(part.values())+1
print 'Community partition of Julius Caesar Act III network:'
parLis=[]
partdi={}
for i,k in part.items():
if k not in partdi:
partdi[k]=[nodper_dic[i]]
else:
partdi[k].append(nodper_dic[i])
for i,k in partdi.items():
parLis.append(k)
print parLis
print 'Community modularity of Julius Caesar Act III network =', "%.4f" % comm.modularity(part,G)
d=0.8
dd=0.8
c=1.2
cc=1.4
alpha=0.2
ealpha=.2
vcc={}
sstt="The %s Communities of Julius Caesar Act III Network" %(max(part.values())+1)
draw_comms(G,G.nodes(),[],[],[] ,part,part,d,dd,c,cc,alpha,ealpha,nodper_dic,sstt)
from chAs import draw_comms,modul_arity
import community as comm
G = graph_dic[ract_dic[cnum[3]]]
G.remove_nodes_from(nx.isolates(G))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
part=comm.best_partition(G)
print 'Number of communities of Julius Caesar Act IV network =', max(part.values())+1
print 'Community partition of Julius Caesar Act IV network:'
parLis=[]
partdi={}
for i,k in part.items():
if k not in partdi:
partdi[k]=[nodper_dic[i]]
else:
partdi[k].append(nodper_dic[i])
for i,k in partdi.items():
parLis.append(k)
print parLis
print 'Community modularity of Julius Caesar Act IV network =', "%.4f" % comm.modularity(part,G)
d=0.8
dd=0.8
c=1.2
cc=1.4
alpha=0.2
ealpha=.2
vcc={}
sstt="The %s Communities of Julius Caesar Act IV Network" %(max(part.values())+1)
draw_comms(G,G.nodes(),[],[],[] ,part,part,d,dd,c,cc,alpha,ealpha,nodper_dic,sstt)
from chAs import draw_comms,modul_arity
import community as comm
G = graph_dic[ract_dic[cnum[4]]]
G.remove_nodes_from(nx.isolates(G))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
part=comm.best_partition(G)
print 'Number of communities of Julius Caesar Act V network =', max(part.values())+1
print 'Community partition of Julius Caesar Act V network:'
parLis=[]
partdi={}
for i,k in part.items():
if k not in partdi:
partdi[k]=[nodper_dic[i]]
else:
partdi[k].append(nodper_dic[i])
for i,k in partdi.items():
parLis.append(k)
print parLis
print 'Community modularity of Julius Caesar Act V network =', "%.4f" % comm.modularity(part,G)
d=0.8
dd=0.8
c=1.2
cc=1.4
alpha=0.2
ealpha=.2
vcc={}
sstt="The %s Communities of Julius Caesar Act V Network" %(max(part.values())+1)
draw_comms(G,G.nodes(),[],[],[] ,part,part,d,dd,c,cc,alpha,ealpha,nodper_dic,sstt)
from chAs import draw_comms,modul_arity
import community as comm
G=plot_total_graph_with_weights(graph_dic,nodper_dic)
weights={(nd[0],nd[1]):str(nd[2]['weight']) for nd in G.edges(data=True)}
# G.remove_nodes_from(nx.isolates(G))
# G = graph_dic[ract_dic[cnum[0]]]
# G.remove_nodes_from(nx.isolates(G))
labels={i:v for v,i in pernode_dict.items() if i in G.nodes()}
part=comm.best_partition(G)
print 'Number of communities of Julius Caesar network (all Acts) =', max(part.values())+1
print 'Community partition of Julius Caesar network (all Acts):'
parLis=[]
partdi={}
for i,k in part.items():
if k not in partdi:
partdi[k]=[nodper_dic[i]]
else:
partdi[k].append(nodper_dic[i])
for i,k in partdi.items():
parLis.append(k)
print parLis
print 'Community modularity of Julius Caesar network (all Acts) =', "%.4f" % comm.modularity(part,G)
d=0.8
dd=0.8
c=1.2
cc=1.4
alpha=0.2
ealpha=.2
vcc={}
sstt="The %s Communities of Julius Caesar Network (all Acts)" %(max(part.values())+1)
draw_comms(G,G.nodes(),[],[],[] ,part,part,d,dd,c,cc,alpha,ealpha,nodper_dic,sstt)